package com.gml.jdk.lambda.syntax;

import com.gml.jdk.lambda.interfaces.*;

/**
 * @ClassName : BaseSyntax
 * @Description : 基础语法
 * @Author : gml
 * @Date: 2020-10-22 17:03
 */
public class BaseSyntax {
    public static void main(String[] args) {
        //1.实现无参无返回值的函数式接口
        NoneReturnNoneParameter lambda = () -> {
            System.out.println("无参无返回值的接口");
        };
        lambda.test();

        //2.一个参数，无返回值的函数式接口
        NoneReturnSingleParameter lambda1 = (int a) ->{
            System.out.println("这事一个参数，无返回值的方法，参数a:" + a);
        };
        lambda1.test(1);

        //3.多个参数，无返回值的函数式接口
        NoneReturnMutipleParameter lambda3 = (a, b) ->{
            System.out.println("多个参数，无返回值的接口，a:" + a + "b:" + b);
        };
        lambda3.test(1, 2);

        //4.无参数，有返回值的函数式接口
        SingleReturnNoneParameter lambda4 = () ->{
            System.out.println("无参数，有返回值的函数式接口");
            return 10;
        };
        lambda4.test();

        //5.一个参数，有返回值的函数式接口
        SingleReturnSingleParameter lambda5 = (a) ->{
            System.out.println("一个参数，有返回值的接口，参数：" + a);
            return a;
        };
        lambda5.test(1);

        //6.多个参数有返回值的函数式接口
        SingleReturnMutipleParameter lambda6 = (a,b) ->{
            System.out.println("多个参数，有返回值的接口：" + a + " " + b);
            return a+b;
        };
        lambda6.test(1,2);
    }
}
